Software-defined networks often include switches that direct network traffic from one computing device to another based on a set of flow entries. For example, an OPENFLOW-enabled switch may, upon receiving a data packet from a device (such as a server or another switch) within a software-defined network, search an onboard database for a flow entry that specifies how to handle the data packet. OPENFLOW-enabled switches may also update these flow entries as changes occur within the software-defined network. For example, an OPENFLOW-enabled switch may add a new flow entry to a database, modify an existing flow entry within a database, and/or delete an existing flow entry from a database in response to a request for the same from a remote controller responsible for managing the flow of data packets among devices within the software-defined network.
In traditional approaches, OPENFLOW-enabled switches may maintain these flow entries as linked list data structures. As a result, an OPENFLOW-enabled switch may need to sift through a linked list entry-by-entry in order to perform certain operations (such as looking up, adding, modifying, and/or deleting flow entries). Unfortunately, due to this entry-by-entry sifting, the OPENFLOW-enabled switch may suffer significant performance degradation as the number of flow entries within the linked list increases beyond a certain point.
As such, the instant disclosure identifies and addresses a need for improved systems and methods for increasing the scalability of software-defined networks.